// pages/square/album/album.js
let App = getApp()

Page({

	data: {
		fileList: [],
		content: ''
	},

	afterRead(event) {
    const { file } = event.detail;
		let _this = this
		_this.setData({fileList: [{url: file.path}]})
	},
	
	publish (e) {
		let content = e.detail.value.content  // 至少为''
		let _this = this

		if ((content === '') && (_this.data.fileList.length === 0)) {
			App.showError("发布信息不能为空")
			return false
		} else {
			if (_this.data.fileList.length !== 0) {  // 至少有图片
				wx.uploadFile({
					url: App.api_root + '/exhibition/message', 
					filePath: _this.data.fileList[0].url,
					name: 'img',
					formData: {
						openid: wx.getStorageSync('openId'),
						content: content
					},
					// 接口调用成功的回调函数，404 500等属于服务器返回的HTTP状态码，这是接口成功调用才能有得，在success函数内
					success (res) {
						console.log("回掉成功")
						console.log("状态码是", res.statusCode)
						if (res.statusCode !== 200) {
							if (res.statusCode === 413) {
								App.showError("上传图片太大")
								_this.setData({fileList: []})
							} else {
								App.showError(res.statusCode.toString());  
							}
						} else {
							const returnData = JSON.parse(res.data)
							if (returnData.status !== 200) {
							
								App.showError(returnData.msg)
								console.log("返回的status不是200不是413")
								
							} else {
								console.log("发布成功!")
								App.showSuccess("发布成功！", wx.navigateBack({}))
							}
						}
					},
					// 接口调用失败的回到函数，这里存在一个逻辑，就是产品只能是测试通过才会上线生产嘛，那这样的话接口调用失败的原因只可能是用户网络的问题或服务器宕机了
					fail: res => {
						App.showError("上传失败，请检查您的网络或联系我们", false)
						console.log(res.detail)
					}
				})
			} else {  // 没有图片但是有文字
				// 肯定是需要登录权限的
				console.log("没有图片但是有文字")
				App._post('exhibition/message', {content: content, openid: wx.getStorageSync('openId')}, result => {
					App.showSuccess("发布成功！")
				})
			}
		}

		
		console.log("publish方法执行完成")
	},
	
	/**
	 * 生命周期函数--监听页面加载
	 */
	onLoad: function (options) {

	},

	/**
	 * 生命周期函数--监听页面初次渲染完成
	 */
	onReady: function () {

	},

	/**
	 * 生命周期函数--监听页面显示
	 */
	onShow: function () {

	},

	/**
	 * 生命周期函数--监听页面隐藏
	 */
	onHide: function () {

	},

	/**
	 * 生命周期函数--监听页面卸载
	 */
	onUnload: function () {

	},

	/**
	 * 页面相关事件处理函数--监听用户下拉动作
	 */
	onPullDownRefresh: function () {

	},

	/**
	 * 页面上拉触底事件的处理函数
	 */
	onReachBottom: function () {

	},

	/**
	 * 用户点击右上角分享
	 */
	onShareAppMessage: function () {

	}
})